﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using MJM.RPP.ComponentesNegocio;
using MJM.RPP.EntidadesNegocio;
using System.Data;
using System.Data.SqlClient;

namespace wRegPadron.Formularios
{
    public partial class Asistencia : System.Web.UI.Page
    {
        private void GuardarLog(string msg, string Rango,string usuario)
        {
            SqlConnection conn = new SqlConnection("Server=192.168.106.251; DataBase=dbAuditoria; User ID=sa; PWD=omega2");
            SqlCommand cmd = new SqlCommand("sp_i_T_AUDACT_APPMUN_Insertar", conn);
            cmd.CommandType = CommandType.StoredProcedure;
            string ipaddress = System.Web.HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"];

            try
            {
                cmd.Parameters.Add(new SqlParameter("@vAUDACT_chUSUACT", usuario));
                cmd.Parameters.Add(new SqlParameter("@vAUDACT_chNOMAPP", "Intranet"));
                cmd.Parameters.Add(new SqlParameter("@vAUDACT_chNOMMOD", "Asistencia web"));
                cmd.Parameters.Add(new SqlParameter("@vAUDACT_chNOMACC", "Consulta"));
                cmd.Parameters.Add(new SqlParameter("@vAUDACT_chVALENV", Rango));
                cmd.Parameters.Add(new SqlParameter("@vAUDACT_inESTACC", "1"));
                cmd.Parameters.Add(new SqlParameter("@vAUDACT_chEXCACC", ""));
                cmd.Parameters.Add(new SqlParameter("@vAUDACT_chDIRIP", ipaddress));
                cmd.Connection.Open();
                cmd.ExecuteNonQuery();
                cmd.Connection.Close();
                cmd.Dispose();
                conn.Dispose();
            }
            catch (Exception ex)
            {
                cmd.Dispose();
                conn.Dispose();
            }

        }

        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                try
                {
                    lblTitulo.Text = "Detalle de asistencia";
                    lblDescripcion.Text = "Por medio de este formulario podrá consultar su asistencia por rango de fecha";
                    PersonaTramiteCN objPersonaCN = new PersonaTramiteCN();
                    PersonaTramiteEN obj = new PersonaTramiteEN();
                    obj.Usuario = Session["usuarioAsis"].ToString();
                    obj.Estado = 1;
                    obj.Eliminado = 1;

                    List<PersonaTramiteEN> personas = objPersonaCN.ListaGeneral(obj, 0);
                    if (personas.Count > 0)
                    {                        
                        hfIdPersona.Value = personas[0].IDPersona.ToString();
                        hfUsuario.Value = personas[0].Usuario;
                        bdpFechaInicio.SelectedDate = DateTime.Now.AddDays((-1) * (DateTime.Now.Day)+1);
                        bdpFechaFin.SelectedDate = DateTime.Now;
                        List<HorarioEN> lst = HorarioCN.Listar(Convert.ToInt32(hfIdPersona.Value), bdpFechaInicio.SelectedDate.Year + (bdpFechaInicio.SelectedDate.Month + 100).ToString().Substring(1, 2) + "01", bdpFechaFin.SelectedDate.Year + (bdpFechaFin.SelectedDate.Month + 100).ToString().Substring(1, 2) + (bdpFechaFin.SelectedDate.Day + 100).ToString().Substring(1, 2));
                        rHorario.DataSource = lst;
                        rHorario.DataBind();
                        GuardarLog("",bdpFechaInicio.SelectedDate.ToShortDateString() + "-"+bdpFechaFin.SelectedDate.ToShortDateString(),hfUsuario.Value);
                        lblUsuario.Text = personas[0].NombrePersona;
                        int[] contador = HorarioCN.ContarEstados(lst);
                        lblTardanzas.Text = contador[0].ToString();
                        lblFaltas.Text = contador[1].ToString();
                    }
                    else
                        Response.Redirect("Login.aspx");
                }
                catch(Exception ex)
                {
                    Response.Redirect("Login.aspx");
                }
            }
        }

        protected void btnConsultar_Click(object sender, EventArgs e)
        {
            List<HorarioEN> lst = HorarioCN.Listar(Convert.ToInt32(hfIdPersona.Value), bdpFechaInicio.SelectedDate.Year + (bdpFechaInicio.SelectedDate.Month + 100).ToString().Substring(1, 2) + (bdpFechaInicio.SelectedDate.Day + 100).ToString().Substring(1, 2), bdpFechaFin.SelectedDate.Year + (bdpFechaFin.SelectedDate.Month + 100).ToString().Substring(1, 2) + (bdpFechaFin.SelectedDate.Day + 100).ToString().Substring(1, 2));
            rHorario.DataSource = lst;
            rHorario.DataBind();
            int[] contador = HorarioCN.ContarEstados(lst);
            lblTardanzas.Text = contador[0].ToString();
            lblFaltas.Text = contador[1].ToString();
            GuardarLog("", bdpFechaInicio.SelectedDate.ToShortDateString() + "-" + bdpFechaFin.SelectedDate.ToShortDateString(), hfUsuario.Value);
        }
    }
}